#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<errno.h>

int main()
{
  umask(0);
  int ret=mkfifo("./test.fifo",0664);      //创建一个命名管道文件
  if(ret<0 && errno!=EEXIST){
    perror("mkfifo error!\n");
    return -1;
  } 


  //打开管道向其中写入数据
  int fp=open("./test.fifo",O_RDONLY);
  if(fp<0){
     perror("open erroe!\n");
     return -1;
  }
   //循环写入数据
  while(1){
    char buf[1024]={0};

    int ret=read(fp,buf,1023);
    if(ret<0){
        perror("read error!\n");
        close(fp);
        return -1;
    }else if(ret==0){
        printf("所有写端被关闭!\n");
        close(fp);
        return -1;
    }
   printf("xzz: %s\n",buf);
  }
  close(fp);
  return 0;
}


